package com.wgyscsf.rx2demo;

import android.app.Activity;
import android.content.Context;
import android.os.Bundle;
import android.support.annotation.Nullable;
import android.support.v7.app.AppCompatActivity;
import android.util.Log;

import io.reactivex.disposables.CompositeDisposable;
import io.reactivex.disposables.Disposable;

/**
 * 作者：wgyscsf on 2017/10/14 15:23
 * 邮箱：wgyscsf@163.com
 * 博客：http://blog.csdn.net/wgyscsf
 */
public class BaseActivity extends AppCompatActivity {
    protected String TAG;
    protected Context mContext;
    protected Activity mActivity;
    protected CompositeDisposable mCompositeDisposable;

    @Override
    protected void onCreate(@Nullable Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        TAG=this.getClass().getSimpleName();
        mContext=this;
        mActivity=this;
    }

    private void iniSingleCompositeDisposable(){
        if(mCompositeDisposable==null){
            synchronized (CompositeDisposable.class){
                if(mCompositeDisposable==null){
                    mCompositeDisposable=new CompositeDisposable();
                }
            }
        }
    }
    //将产生的disposable添加进来，自动在页面销毁时清除请求
    protected void addDisposable(Disposable ... pDisposables){
        iniSingleCompositeDisposable();
        for (Disposable lDisposable : pDisposables) {
            mCompositeDisposable.add(lDisposable);
        }
    }

    @Override
    protected void onDestroy() {
        super.onDestroy();
        if(mCompositeDisposable!=null){
            mCompositeDisposable.clear();
            Log.e(TAG, "onDestroy: 取消了队列中的所有请求" );
        }
    }
}
